/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package ReglasNegocio;
import AccesoDatos.*;
/**
 *
 * @author dani
 */
public class Gerente extends Persona {
    
    private Jerarquia jerarquia;
        
    public Gerente(Dato id) {
        super(id);
        this.id=this.campo.get(0).getValor();
    }
    
    public Gerente() {
        super();
        
    }
    
    public Jerarquia getJerarquia() {
        return this.jerarquia;
    }
    
    public void setJerarquia(Jerarquia j) {
        this.jerarquia=j;
    }
    
    @Override
    protected Boolean asignarCampos() {
        String sql="select * from gerente";
        sql+=" where "+this.getDato(0).getNombre()+"='"+this.getDato(0).getValor()+"'";
        
        Vista v=this.conn.crearVista(sql);
        
        if (v.getNRegistros()>0) {
            int idJerarquia= (Integer) v.getRegistro(0, 3);
            Dato fkjerarquia=new Dato("nivel",String.valueOf(idJerarquia));
            this.jerarquia=null;
            this.jerarquia=new Jerarquia(fkjerarquia);
            this.nombres=(String) v.getRegistro(0, 1);
            this.apellidos=(String) v.getRegistro(0, 2);
            return true;
        }
        else
            return false;
    }
    
    
    public void Crearlo() {
        Dato[] campos=new Dato[3];
        
        Dato c=new Dato("fkjerarquia",this.jerarquia.getId());
        
        
        campos[0]=c;
        campos[1]=new Dato("nombres",this.nombres);
        campos[2]=new Dato("apellidos",this.apellidos);
        
        this.conn.Agregar(campos, "gerente");
        Vista v=this.conn.crearVista("select last_insert_id()");
        this.id=String.valueOf((Long)v.getRegistro(0, 0));        
    }
    

    @Override
    public void Actualizar() {
        String sql="update "+this.getNombreObjeto();
        sql+=" set ";
        sql+="nombres='"+this.nombres+"',";
        sql+="apellidos='"+this.apellidos+"',";
        sql+="fkjerarquia='"+this.jerarquia.getId()+"' ";
        sql+="where id='"+this.id+"'";
        
        this.conn.ejecutarActualizacion(sql);
        this.asignarCampos();
            
    }
}